copy filename to builder->priv instead of holding a reference to it. Bug
authorFernando Herrera <fherrera@onirica.com>
Tue, 4 Sep 2007 12:36:24 +0000 (12:36 +0000)
committerFernando Herrera de las Heras <fherrera@src.gnome.org>
Tue, 4 Sep 2007 12:36:24 +0000 (12:36 +0000)
2007-09-04  Fernando Herrera  <fherrera@onirica.com>

        * gtk/gtkbuilder.c: (gtk_builder_finalize),
        (gtk_builder_add_from_file): copy filename to builder->priv instead of
        holding a reference to it. Bug #472643

svn path=/trunk/; revision=18722

ChangeLog
gtk/gtkbuilder.c

index 946baf01d3edcc8f58b940f6adcd2a5aa2a404b3..82e5983c184936a2f94452756c771df93574a846 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-09-04  Fernando Herrera  <fherrera@onirica.com>
+
+       * gtk/gtkbuilder.c: (gtk_builder_finalize),
+       (gtk_builder_add_from_file): copy filename to builder->priv instead of
+       holding a reference to it. Bug #472643
+
 2007-09-04  Michael Natterer  <mitch@imendio.com>
 
        * gtk/gtkmodules.c: added missing \n to g_print() in GTK_NOTE().
index 551a47772b16682f0a6ee56b9f7898b91d7c5a9f..6608bc581853516cb6773838ba72bf5b447b3217 100644 (file)
@@ -70,7 +70,7 @@ struct _GtkBuilderPrivate
   GSList *signals;
   gchar *current_root;
   GSList *root_objects;
-  const gchar *filename;
+  gchar *filename;
 };
 
 G_DEFINE_TYPE (GtkBuilder, gtk_builder, G_TYPE_OBJECT)
@@ -142,6 +142,7 @@ gtk_builder_finalize (GObject *object)
   g_hash_table_destroy (builder->priv->objects);
   g_slist_foreach (builder->priv->root_objects, (GFunc)g_object_unref, NULL);
   g_slist_free (builder->priv->root_objects);
+  g_free (builder->priv->filename);
 }
 
 static void
@@ -651,7 +652,7 @@ gtk_builder_add_from_file (GtkBuilder   *builder,
       return 0;
     }
   
-  builder->priv->filename = filename;
+  builder->priv->filename = g_strdup (filename);
 
   _gtk_builder_parser_parse_buffer (builder, filename,
                                     buffer, length,